package com.sojson.entity.po;

import java.util.Date;
import java.util.List;

import com.sojson.base.impl.BaseDto;
import com.sojson.util.DateUtil;
import com.sojson.util.file.enums.EFileStatus;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 文件库Bean
 * 
 * @author liu
 * @date 2021-05-26
 */
@ApiModel("文件库Bean")
public class FileDepot extends BaseDto {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1622024829969L;

    @ApiModelProperty("文件库的访问路径")
    private String url;
    @ApiModelProperty("文件库存储路径")
    private String path;
    @ApiModelProperty("表代码")
    private Integer tableCode;
    @ApiModelProperty("字段名")
    private String fieldName;
    @ApiModelProperty("文件库的分组(例如哪个数据库的哪张表的哪条数据的哪个字段,定期删除同一组中创建时间比较旧的)")
    private String key;
    @ApiModelProperty("状态(1:创建,2:使用中,3:未使用,4.已删除)(定期删除创建时间超过一定时间的和未使用的)")
    private Integer status;
    @ApiModelProperty("校验时间")
    private Date verifyDate;
    @ApiModelProperty("创建时间")
    private Date createdAt;
    @ApiModelProperty("更新时间")
    private Date updatedAt;
    @ApiModelProperty("ID集合")
    private List<Integer> ids;
    /** Url数组 */
    private String[] urlArr;
    /** Path数组 */
    private String[] pathArr;
    /** Url集合 */
    private List<String> urls;
    /** Path集合 */
    private List<String> paths;
    /** 文件库集合 */
    private List<FileDepot> images;

    /**
     * 以上由工具自动生成，以下为手动添加
     */

       /**
        * Empty constructor
        */
    public FileDepot() {

    }

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    /**
     * 获取 文件库的访问路径
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置 文件库的访问路径
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 获取 文件库存储路径
     */
    public String getPath() {
        return path;
    }

    /**
     * 设置 文件库存储路径
     */
    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 获取 表代码
     */
    public Integer getTableCode() {
        return tableCode;
    }

    /**
     * 设置 表代码
     */
    public void setTableCode(Integer tableCode) {
        this.tableCode = tableCode;
    }

    /**
     * 获取 字段名
     */
    public String getFieldName() {
        return fieldName;
    }

    /**
     * 设置 字段名
     */
    public void setFieldName(String fieldName) {
        this.fieldName = fieldName;
    }

    /**
     * 获取 文件库的分组(例如哪个数据库的哪张表的哪条数据的哪个字段,定期删除同一组中创建时间比较旧的)
     */
    public String getKey() {
        return key;
    }

    /**
     * 设置 文件库的分组(例如哪个数据库的哪张表的哪条数据的哪个字段,定期删除同一组中创建时间比较旧的)
     */
    public void setKey(String key) {
        this.key = key;
    }

    /**
     * 获取 状态(1:创建,2:使用中,3:未使用,4.已删除)(定期删除创建时间超过一定时间的和未使用的)
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置 状态(1:创建,2:使用中,3:未使用,4.已删除)(定期删除创建时间超过一定时间的和未使用的)
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取 校验时间
     */
    public Date getVerifyDate() {
        return verifyDate;
    }

    /**
     * 设置 校验时间
     */
    public void setVerifyDate(Date verifyDate) {
        this.verifyDate = verifyDate;
    }

    /**
     * 获取 创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置 创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取 更新时间
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置 更新时间
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取 ID集合
     */
    public List<Integer> getIds() {
        return ids;
    }

    /**
     * 设置 ID集合
     */
    public void setIds(List<Integer> ids) {
        this.ids = ids;
    }

    /**
     * 获取访问路径数组
     */
    public String[] getUrlArr() {
        return urlArr;
    }

    /**
     * 设置访问路径数组
     */
    public void setUrlArr(String[] urlArr) {
        this.urlArr = urlArr;
    }

    /**
     * 获取存储路径数组
     */
    public String[] getPathArr() {
        return pathArr;
    }

    /**
     * 设置存储路径数组
     */
    public void setPathArr(String[] pathArr) {
        this.pathArr = pathArr;
    }

    /**
     * 获取访问路径集合
     */
    public List<String> getUrls() {
        return urls;
    }

    /**
     * 设置访问路径集合
     */
    public void setUrls(List<String> urls) {
        this.urls = urls;
    }

    /**
     * 获取存储路径集合
     */
    public List<String> getPaths() {
        return paths;
    }

    /**
     * 设置存储路径集合
     */
    public void setPaths(List<String> paths) {
        this.paths = paths;
    }

    /**
     * 获取 文件库集合
     */
    public List<FileDepot> getImages() {
        return images;
    }

    /**
     * 设置 文件库集合
     */
    public void setImages(List<FileDepot> images) {
        this.images = images;
    }

    /**
     * 以上由工具自动生成，以下为手动添加
     */

    /**
     * 插入初始化
     */
    public void insertInit() {
        setStatus(EFileStatus.CREATE.getCode());
        Date now = DateUtil.nowDate();
        setVerifyDate(now);
        setCreatedAt(now);
        setUpdatedAt(now);
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        Date now = DateUtil.nowDate();
        setUpdatedAt(now);
    }

}